// 主脚本文件

// 页面加载完成后执行
window.addEventListener('DOMContentLoaded', function() {
    // 从本地存储获取设置
    const gameSettings = getGameSettings();
    
    // 应用设置（如果需要）
    applyGameSettings(gameSettings);
    
    // 添加导航高亮效果
    highlightActiveNav();
});

// 从本地存储获取游戏设置
function getGameSettings() {
    const defaultSettings = {
        gameDuration: 60, // 默认游戏时长60秒
        soundEnabled: true,
        difficulty: 'medium'
    };
    
    try {
        const savedSettings = localStorage.getItem('gameSettings');
        return savedSettings ? JSON.parse(savedSettings) : defaultSettings;
    } catch (error) {
        console.error('获取设置失败:', error);
        return defaultSettings;
    }
}

// 保存游戏设置到本地存储
function saveGameSettings(settings) {
    try {
        localStorage.setItem('gameSettings', JSON.stringify(settings));
        return true;
    } catch (error) {
        console.error('保存设置失败:', error);
        return false;
    }
}

// 应用游戏设置
function applyGameSettings(settings) {
    // 这里可以根据设置调整游戏行为
    console.log('应用游戏设置:', settings);
}

// 高亮当前活动的导航项
function highlightActiveNav() {
    const currentPath = window.location.pathname;
    const navLinks = document.querySelectorAll('nav a');
    
    navLinks.forEach(link => {
        const linkPath = new URL(link.href).pathname;
        if (linkPath === currentPath) {
            link.style.backgroundColor = 'rgba(255,255,255,0.2)';
            link.style.fontWeight = 'bold';
        }
    });
}

// 显示消息提示
function showMessage(message, type = 'info') {
    // 创建消息元素
    const messageDiv = document.createElement('div');
    messageDiv.className = `message message-${type}`;
    messageDiv.textContent = message;
    
    // 添加样式
    messageDiv.style.position = 'fixed';
    messageDiv.style.top = '20px';
    messageDiv.style.left = '50%';
    messageDiv.style.transform = 'translateX(-50%)';
    messageDiv.style.padding = '10px 20px';
    messageDiv.style.borderRadius = '5px';
    messageDiv.style.color = 'white';
    messageDiv.style.zIndex = '1000';
    messageDiv.style.boxShadow = '0 2px 10px rgba(0,0,0,0.2)';
    messageDiv.style.opacity = '0';
    messageDiv.style.transition = 'opacity 0.3s';
    
    // 根据类型设置背景色
    switch(type) {
        case 'success':
            messageDiv.style.backgroundColor = '#4CAF50';
            break;
        case 'error':
            messageDiv.style.backgroundColor = '#f44336';
            break;
        case 'warning':
            messageDiv.style.backgroundColor = '#ff9800';
            break;
        default:
            messageDiv.style.backgroundColor = '#2196F3';
    }
    
    // 添加到页面
    document.body.appendChild(messageDiv);
    
    // 显示消息
    setTimeout(() => {
        messageDiv.style.opacity = '1';
    }, 10);
    
    // 3秒后隐藏消息
    setTimeout(() => {
        messageDiv.style.opacity = '0';
        setTimeout(() => {
            document.body.removeChild(messageDiv);
        }, 300);
    }, 3000);
}

// 记录游戏分数
function recordScore(gameName, score, duration) {
    try {
        // 获取现有分数记录
        const scores = JSON.parse(localStorage.getItem('gameScores') || '{}');
        
        // 如果游戏没有分数记录，初始化
        if (!scores[gameName]) {
            scores[gameName] = [];
        }
        
        // 添加新的分数记录
        scores[gameName].push({
            score: score,
            duration: duration,
            date: new Date().toISOString()
        });
        
        // 按分数降序排序，只保留前10名
        scores[gameName].sort((a, b) => b.score - a.score);
        scores[gameName] = scores[gameName].slice(0, 10);
        
        // 保存分数记录
        localStorage.setItem('gameScores', JSON.stringify(scores));
        return true;
    } catch (error) {
        console.error('记录分数失败:', error);
        return false;
    }
}

// 获取游戏最高分
function getHighScore(gameName) {
    try {
        const scores = JSON.parse(localStorage.getItem('gameScores') || '{}');
        if (scores[gameName] && scores[gameName].length > 0) {
            return scores[gameName][0].score;
        }
        return 0;
    } catch (error) {
        console.error('获取最高分失败:', error);
        return 0;
    }
}

// 格式化时间（秒转换为分:秒）
function formatTime(seconds) {
    const mins = Math.floor(seconds / 60);
    const secs = seconds % 60;
    return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
}